﻿#pragma once

#include "Generation/Graph/FVertexNode.h"

class Architect;

class FGlyph
{
public:
	FLinearColor color;
	FGlyph(FLinearColor color)
	{
		this->color = color;
	}
};

class FTileType
{
public:
	FString name;
	FGlyph* appearance;

	FTileType(FString name,
		FGlyph* appearance
		)
	{
		this->name = name;
		this->appearance = appearance;
	}

public:
	/// An unformed tile that can be turned into water of some kind when "filled" or a bridge when used as a passage.
	/// 一种未成形的瓦片，当"填充"时可以变成某种水、或作为通道时可以变成桥
	static FTileType* unformed;
	// static FTileType* unformedWet;
	static FTileType* open;
	static FTileType* solid;
	// static FTileType* solidWall;
	// static FTileType* solidRoom;
	// static FTileType* solidPassage;
	// static FTileType* passage;
	// static FTileType* doorway;
	static FTileType* solidWet;
	// static FTileType* passageWet;
};

class FTile
{
public:
	FSpanTreeNode* owner;
	Architect* architect;
	FTileType* type;

public:
	void SetType(FTileType* _type);
	void Show();
};
